package com.springjooq.sdun.mybatisplus.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.springjooq.sdun.mybatisplus.system.entity.User;
import com.springjooq.sdun.mybatisplus.utils.DataScope;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Map;

/**
 * @Description
 * @auther Szper
 * @create 2019-09-11 15:38
 */
public interface UserMapper extends BaseMapper<User> {
    /**
     * 设置用户状态
     * @param userId
     * @param status
     * @return
     */
    int setStatus(@Param("userId") Long userId, @Param("status") String status);

    /**
     * 修改密码
     * @param userId
     * @param pwd
     * @return
     */
    int changePwd(@Param("userId") Long userId, @Param("pwd") String pwd);

    /**
     *
     * @param page
     * @param dataScope
     * @param name
     * @param beginTime
     * @param endTime
     * @param deptId
     * @return
     */
    Page<Map<String, Object>> selectUsers(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("name") String name, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptId") Long deptId);

    /**
     * 设置用户角色
     * @param userId 用户id
     * @param roleIds 角色列表 多个角色 ','隔开
     * @return
     */
    int setRoles(@Param("userId") Long userId, @Param("roleIds") String roleIds);

    /**
     * 通过账号获取用户
     * @param account 账号
     * @return
     */
    User getByAccount(@Param("account") String account);
}
